package test_202203;

import java.util.Scanner;

public class Main2 {
    static int N=400000;
    static int[] d=new int[N];
    public static void main(String[] args) {
        //暴力只有70
        // Scanner sc=new Scanner(System.in);
        // int n=sc.nextInt();//计划数量
        // int m=sc.nextInt();//查询个数
        // int k=sc.nextInt();//等待所需时间
        // int[][] time=new int[n][2];
        // for(int i=0;i<time.length;i++){
        //     time[i][0]=sc.nextInt();
        //     time[i][1]=sc.nextInt();
        // }
        // int startIndex=0;
        // for(int i=0;i<m;i++){
        //     int res=0;
        //     int t=sc.nextInt();
        //     for(int j=startIndex;j<time.length;j++){
        //         int t1=t+k;
        //         int t2=t+k+time[j][1]-1;
        //         if(time[j][0]>=t1&&t2>=time[j][0]){
        //             res++;
        //             if(res==1){
        //                 startIndex=j;
        //             }
        //         }
        //     }
        //     System.out.println(res);
        // }
        // sc.close();
        //差分数组
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();//计划数量
        int m=sc.nextInt();//查询个数
        int k=sc.nextInt();//等待所需时间
        for(int i=0;i<n;i++){
            int first=sc.nextInt();
            int second=sc.nextInt();
            int left=first-second+1<=0?1:first-second+1;
            int right=first;
            diff(left, right, 1);
        }
        for(int i=1;i<d.length;i++){
            d[i]+=d[i-1];
        }
        for(int i=0;i<m;i++){
            int t=sc.nextInt();
            System.out.println(d[t+k]);
        }
        sc.close();
       
    }

    public static void diff(int left,int right,int c){
        d[left]+=c;
        d[right+1]-=c;
    }
}
